package com.xbongbong.saas.model;

import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.pro.domain.entity.AiAssistantEntity;

import java.util.List;
import java.util.Map;

/**
 * @description: 智能助手
 * @Author: hongxiao
 * @date: 2019-04-23 20:01
 * @since v1.0
 */
public interface AiAssistantModel extends IModel<AiAssistantEntity> {
    /**
     * 保存设置
     *
     * @param entity 实体
     * @return
     * @throws
     * @author hongxiao
     * @date: 2019-04-23 20:12
     * @since v1.0
     * @version v1.0
     */
    Integer save(AiAssistantEntity entity);
    /**
     * 删除实体
     *
     * @param key 智能助手id
     * @param corpid 公司id
     * @throws
     * @return
     * @author hongxiao
     * @date 2019-11-14 19:37
     * @since
     * @version
     */
    Integer deleteByKey(Long key, String corpid);
    /**
     * 批量插入
     *
     * @param entityList 实体列表
     * @return
     * @throws
     * @author hongxiao
     * @date: 2019-04-23 20:13
     * @since v1.0
     * @version v1.0
     */
    void insertBatch(List<AiAssistantEntity> entityList);

    /**
     * 获取实体
     *
     * @param key 智能助手id
     * @param corpid 公司id
     * @return
     * @throws
     * @author hongxiao
     * @date: 2019-04-24 20:20
     * @since v1.0
     * @version v1.0
     */
    AiAssistantEntity getByKey(Long key, String corpid);

    /**
     * 获取公司ids
     *
     * @param param 入参
     * @return
     * @throws
     * @author hongxiao
     * @date: 2019-05-10 10:55
     * @since v1.0
     * @version v1.0
     */
    List<String> findCorps(Map<String, Object> param);
    /**
     * 获取公司数量
     *
     * @return
     * @throws
     * @author hongxiao
     * @date: 2019-05-10 10:55
     * @since
     * @version
     */
    Integer getCorpsCount();

    /**
     * 获取启用的个数
     *
     * @param corpid 公司
     * @return
     * @throws
     * @author hongxiao
     * @date: 2019-05-10 10:54
     * @since v1.0
     * @version v1.0
     */
    Integer getEnableCount(String corpid);

    /**
     * 获取只有一个触发条件的数据
     * @param corpid 公司id
     * @param formId 表单id
     * @return
     * @throws
     * @author hongxiao
     * @date 2019-05-29 14:06
     * @since v1.0
     * @version v1.0
     */
    List<AiAssistantEntity> getListByOneCondition(String corpid, Long formId);

    /**
     * 是否有进销存智能助手
     * @param corpid 公司id
     * @return
     * @throws
     * @author hongxiao
     * @date 2019-08-20 11:17
     * @since v1.0
     * @version v1.0
     */
    Boolean hasJxcSmart(String corpid);
    /**
     * 批量更新（enable，action，updateTime，strategy，executor，smsExecutor）
     *
     * @param entityList 实体列表
     * @param corpid 公司id
     * @throws
     * @return
     * @author hongxiao
     * @date 2019-12-06 11:01
     * @since
     * @version
     */
    void updateBatch(List<AiAssistantEntity> entityList, String corpid);

    /**
     * 获取所有公司id
     *
     * @return
     */
    List<String> getCorpidList();
}
